﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using KPWeb.Class;
using KPWeb.Data;
using KPWeb.Function;
using KPWeb.Slowniki;

namespace KPWeb.Jednostka
{

    public partial class NarzedziaJednostki : KPPage
    {
        private short RodzajNarzedzia
        {

            get
            {
                return short.Parse(ViewState["RodzajNarzedzia"].ToString());
            }
            set
            {
                ViewState["RodzajNarzedzia"] = value;

            }
        }
        private bool CzyZarzad
        {

            get
            {
                return bool.Parse(ViewState["CzyZarzad"].ToString());
            }
            set
            {
                ViewState["CzyZarzad"] = value;

            }
        }
        private void komunikatError(int kod)//, int iT, int iID)
        {
            fError.Visible = true;
            switch (kod)
            {
                case -1: Error1.Visible = true;
                    break;
                case -2: Error2.Visible = true;
                    break;
                case -3: Error3.Visible = true;
                    //        Error3.Text = Stale.errorJuzZarejestrowany + iT.ToString() + ", ID= " + iID.ToString();
                    break;
                case -4: Error4.Visible = true;
                    break;
                case -5: Error5.Visible = true;
                    break;
                case -6: Error6.Visible = true;
                    break;
                case -7: Error7.Visible = true;
                    break;
                case -8: Error8.Visible = true;
                    break;
                case -9: Error9.Visible = true;
                    break;
                case -10: Error10.Visible = true;
                    break;
                case -11: Error11.Visible = true;
                    break;
                case -12: Error12.Visible = true;
                    break;
                case -13: Error13.Visible = true;
                    break;
                case -14: Error14.Visible = true;
                    break;
                case -15: Error15.Visible = true;
                    break;
                case -16: Error16.Visible = true;
                    break;
                case -17: Error17.Visible = true;
                    break;
                default: fError.Visible = false;
                    break;
            }
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            Error1.Visible = false;
            Error2.Visible = false;
            Error3.Visible = false;
            Error4.Visible = false;
            Error5.Visible = false;
            Error6.Visible = false;
            Error7.Visible = false;
            Error8.Visible = false;
            Error9.Visible = false;
            Error10.Visible = false;
            Error11.Visible = false;
            Error12.Visible = false;
            Error13.Visible = false;
            Error14.Visible = false;
            Error15.Visible = false;
            Error16.Visible = false;
            Error17.Visible = false;
            fError.Visible = false;
            fWizualizacja.Visible = false;
            lOsobaOpis.Visible = false;

            RodzajNarzedzia = short.Parse(Request["value"]);

            if (!IsPostBack)
            {


                CzyZarzad = false;
                switch (RodzajNarzedzia)
                {
                    case 1://Komunikaty
                        this.Fieldset1.Visible = true;
                        break;
                    case 2://glosowania
                        this.Fieldset2.Visible = true;
                        break;
                    case 3://lunch
                        this.Fieldset3.Visible = true;
                        break;
                }

                switch (KPPage.Current.Uprawnienia)
                {
                    case Stale.uprVIP:
                    case Stale.uprMoje:
                    case Stale.uprZarzad:
                    case Stale.uprPersonalny:
                        fError.Visible = true;
                        Error16.Visible = true;
                        this.Fieldset2.Visible = false;
                        break;

                    case Stale.uprJednostka:
                    case Stale.uprKierownik:
                    case Stale.uprDyrektor:

                        break;

                    case Stale.uprGlosowania:
                    case Stale.uprKoordynator:
                        CzyZarzad = true;
                        break;

                }

                mKomunikat.Text = "";
                hKomunikat.Value = "";
                this.tData.Text = String.Format("{0:yyyy-MM-dd}", DateTime.Now);
                this.tDataOd.Text = String.Format("{0:yyyy-MM-dd}", DateTime.Now);
                dGrupa.Items.Clear();
                dGrupa.Items.Add(new ListItem() { Text = Stale.wybierzGrupe, Value = "0" });

                if (!CzyZarzad)
                    foreach (vKP_JednostkiGrupy item in Model.GetGrupyDlaFirmy(int.Parse(Current.FirmaID)))
                    {
                        dGrupa.Items.Add(new ListItem()
                        {
                            Text = item.GrupaOpis,
                            Value = item.GrupaID.ToString()
                        });
                    }
                else
                    foreach (vKP_JednostkiGrupy item in Model.GetGrupyDlaFirmyPlusZarzad(int.Parse(Current.FirmaID)))
                    {
                        dGrupa.Items.Add(new ListItem()
                        {
                            Text = item.GrupaOpis,
                            Value = item.GrupaID.ToString()
                        });
                    }



                dGrupa.SelectedIndex = 0;
                dTypAnkietySondazu.Items.Clear();
                dTypAnkietySondazu.Items.Add(new ListItem() { Text = Stale.wybierzTypAnkietySondazu, Value = "0" });
                if (!CzyZarzad)
                {
                    foreach (vLex_TypAnkietySondazu item in Model.GetTypyAnkietySondazuDlaJednostki())
                    {
                        dTypAnkietySondazu.Items.Add(new ListItem()
                        {
                            Text = item.TypAnkietySondazuNazwa,
                            Value = item.TypAnkietySondazuID.ToString()
                        });
                    }

                }
                else
                {
                    foreach (vLex_TypAnkietySondazu item1 in Model.GetTypyAnkietySondazuDlaFirmy())
                    {
                        dTypAnkietySondazu.Items.Add(new ListItem()
                        {
                            Text = item1.TypAnkietySondazuNazwa,
                            Value = item1.TypAnkietySondazuID.ToString()
                        });
                    }
                }
                //dGrupa.Items.Add(new ListItem() { Text = Stale.wybierzGrupe, Value = "0" });
                dTypAnkietySondazu.SelectedIndex = 0;
            }
            else
            {
                mKomunikat.Text = Server.HtmlDecode(hKomunikat.Value);
            }
        }
        protected void bW_Click(object sender, EventArgs e)
        {
            DateTime dNieST;

            if (!DateTime.TryParse(this.tData.Text, out dNieST))
            {
                komunikatError(-10);
                return;
            }

            lKomunikatMenu.Text = Server.HtmlDecode("<div class='news'>" + " <font color='green'> <b>" + String.Format("{0:yyyy-MM-dd}", DateTime.Parse(this.tData.Text)) + "</b></font>"
                + "&nbsp" + (hKomunikat.Value) + "</div>");

            lKomunikatMenu.Visible = true;
            fWizualizacja.Visible = true;
        }

        protected void tZapisz_Click(object sender, EventArgs e)
        {
            DateTime dNieST;
           
            if (!DateTime.TryParse(this.tData.Text, out dNieST))
            {
                komunikatError(-10);
                return;
            }
            if (Model.InsertUpdateKomunikat(DateTime.Parse(tData.Text), Server.HtmlDecode(hKomunikat.Value),
                int.Parse(Current.OsobaID), int.Parse(Current.JednostkaID),int.Parse(Current.FirmaID)) == 1)
            {
                komunikatError(-1);
                return;
            }

            lKomunikatMenu.Text = "";
            Server.Transfer("~/Default.aspx");
        }
        protected void InsertMenu_Click(object sender, EventArgs e)
        {

            
            if (cMoje.LunchJestZamowienie(int.Parse(Current.JednostkaID)) > 0)
            {
                komunikatError(-6);
                return;
            }

            // dopuszczalna liczba znaków  pojedyńczej nazwie w menu Lunch
            string[] lMenu = mLunch.Text.Split('#');
            for (int i = 0; i < lMenu.Count(); i++)
                if(lMenu[i].Length > Stale.lunchDlugoscNazwy)
                {
                    komunikatError(-17);
                    return;
                }

            if (Model.InsertUpdateLunch(this.mLunch.Text, int.Parse(Current.JednostkaID), int.Parse(Current.OsobaID)) == 1)
            {
                komunikatError(-2);
                return;
            }

            lKomunikatMenu.Text = "";
            Server.Transfer("~/Default.aspx");
        }



        protected void bAnkietaSondaz_Click(object sender, EventArgs e)
        {

//InsertNowaAnkietaSondazTransact( int osobaID,int jednostkaID,int grupa, string ankietasondazName,DateTime dataOd,DateTime dataDo,
//            string czyAnkieta, string czyJednostka, string czyPodgladPrzezOsobe, string uwagi,string pytania)
            if (int.Parse(dTypAnkietySondazu.SelectedValue) == 0)
            {
                komunikatError(-15);
                return;
            }
            if ( int.Parse(dGrupa.SelectedValue)==0)
            {
                komunikatError(-9);
                return;
            }

            if (tDataOd.Text.Trim() == "" || tDataDo.Text.Trim() == "")
            {
                komunikatError(-7);
                return;
            }
            if (DateTime.Parse(tDataOd.Text) > DateTime.Parse(tDataDo.Text))
            {
                komunikatError(-8);
                return;
            }
            if (tAnkietaSondazNazwa.Text.Trim() == "" )
            {
                komunikatError(-12);
                return;
            }
            int lPytan = 0;
            string[] lMenu = tAnkietaSondazPytania.Text.Trim().Split('#');
          
            foreach (string s in lMenu)
            {
                if (s.Trim() != "")
                {
                    lPytan += 1;
                }
            }
            if (tAnkietaSondazPytania.Text.Trim() == "" || lPytan==0)
            {
                komunikatError(-13);
                return;
            }

            string kodAnkietaSondaz = TypyGlosowan.PobierzKodTypuGlosowanDlaID(int.Parse(dTypAnkietySondazu.SelectedValue));
            if (kodAnkietaSondaz.Substring(0, 1) == "W")
            {
                int LiczbaWybieranychOsob = int.Parse(kodAnkietaSondaz.Substring(3, 1));

               bool WyborDokladnie = (kodAnkietaSondaz.Substring(2, 1) == "R");
                if (WyborDokladnie)
                {
                    if (lPytan <= LiczbaWybieranychOsob)
                    {
                        komunikatError(-14);
                        return;
                    }
                }
                else
                {
                    if (lPytan < LiczbaWybieranychOsob)
                    {
                        komunikatError(-14);
                        return;
                    }
                }
            }


            int iOutput = Model.InsertNowaAnkietaSondazTransact(int.Parse(Current.OsobaID), int.Parse(Current.JednostkaID)
                , int.Parse(dGrupa.SelectedValue), tAnkietaSondazNazwa.Text, DateTime.Parse(tDataOd.Text).Date, DateTime.Parse(tDataDo.Text).Date,
                 byte.Parse(dTypAnkietySondazu.SelectedValue), tAnkietaSondazUwagi.Text, tAnkietaSondazPytania.Text);

             if (iOutput<0)
            {
                   switch (iOutput)
                {
                    case -1:
                        iOutput=-10;
                        break;
                    case -2:
                        iOutput = -11;
                        break;
                 }
                   komunikatError(iOutput);
                return;
            }
           

            lKomunikatMenu.Text = "";



            switch ( kodAnkietaSondaz.Substring(0, 1))
            {
                case "W":
                     switch ( kodAnkietaSondaz.Substring(1, 1))
                     {
                         case "J":
                              Server.Transfer("~/Moje/Ankiety.aspx?value=10");
                                 break;
                         case "F":
                              Server.Transfer("~/Moje/Ankiety.aspx?value=11");
                                  break;
                     }
                    break;
                case "G":
                     switch ( kodAnkietaSondaz.Substring(2, 1))
                     {
                         case "J":
                           switch ( kodAnkietaSondaz.Substring(3, 1))
                     {
                         case "I":
                                    Server.Transfer("~/Moje/Ankiety.aspx?value=0");
                                 break;
                         case "A":
                                    Server.Transfer("~/Moje/Ankiety.aspx?value=5");
                                  break;
                     }
                                 break;
                         case "F":
                                   switch ( kodAnkietaSondaz.Substring(3, 1))
                     {
                         case "I":
                                            Server.Transfer("~/Moje/Ankiety.aspx?value=1");
                                 break;
                         case "A":
                                            Server.Transfer("~/Moje/Ankiety.aspx?value=6");
                                  break;
                     }
                                  break;
                     }
                   break;
            }
 

      //      Server.Transfer("~/Default.aspx");
        }



    }
}